package com.dream.model;

import java.io.Serializable;
import java.util.List;

import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import org.hibernate.annotations.BatchSize;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;

/**
 * 学期计划表
 * 
 * @author Administrator
 *
 */
@Entity
@Table(name = "sys_learnplant")
public class Sys_LearnPlant extends AllId implements Serializable {

	/**
	 * 
	 * 
	 */
	private static final long serialVersionUID = 1L;

	private SysUser sysUser;// 所有人 专家和老师

	private String name; // 名称

	private String content; // 内容

	private String adress;// 场地
	private Long learntime; // 时长

	private String keshi;// 课时

	private String jiaoju;// 教具

	private Integer nextTime;// 下次目标数量

	private String pltype;// 1科目，2模块，3话题，4环节，5步骤
	
	private String pltype_1="0";//环节类型 如：1作业环节，0上课环节

	private String ltype;// //2,2都是老师计划，5专家计划

	private Long pStartTime;// 计划开始时间

	private Long pendTime; // 计划结束时间

	private String pStartShowTime;// 计划开始时间显示

	private String pendTimeShow;// 计划开始时间结束显示

	private String lpid;// ID

	private String plpid;// 上级ID

	private String pName;// 上级名称
	
	private String share="0";//0表示不共享 ，1表示 共享

	private Sys_TestPaper sys_TestPaper;//这节课的作业

	private List<Sys_LearnPlant_Lable> listlpl = null;// 学期计划的标签

	private List<Sys_LearnPlant_Class> listslpc = null; //一个教学计划可以在多个班中

	private String id1; // 我的科目

	private String id2; // 我的学期

	private String id3; // 我的模块

	private String id4; // 我的环节

	private String id5; // 我的步骤

	private List<Sys_File> listsf = null;
	
	private String isCheck="0";//是否已经上课
	
	private String fujian;
	
	private String fujianType;
	

	public String getPltype_1() {
		return pltype_1;
	}

	public void setPltype_1(String pltype_1) {
		this.pltype_1 = pltype_1;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "sys_LearnPlant", orphanRemoval = true)
	@Cascade(value = { CascadeType.SAVE_UPDATE })
	@BatchSize(size = 20)
	public List<Sys_File> getListsf() {
		return listsf;
	}

	public void setListsf(List<Sys_File> listsf) {
		this.listsf = listsf;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "sys_LearnPlant", orphanRemoval = true)
	@Cascade(value = { CascadeType.SAVE_UPDATE })
	@BatchSize(size = 20)
	public List<Sys_LearnPlant_Class> getListslpc() {
		return listslpc;
	}

	public void setListslpc(List<Sys_LearnPlant_Class> listslpc) {
		this.listslpc = listslpc;
	}

	public String getLpid() {
		return lpid;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "sys_LearnPlant", orphanRemoval = true)
	@Cascade(value = { CascadeType.SAVE_UPDATE })
	@BatchSize(size = 20)
	public List<Sys_LearnPlant_Lable> getListlpl() {
		return listlpl;
	}

	public void setListlpl(List<Sys_LearnPlant_Lable> listlpl) {
		this.listlpl = listlpl;
	}

	public void setLpid(String lpid) {
		this.lpid = lpid;
	}

	public String getPlpid() {
		return plpid;
	}

	public void setPlpid(String plpid) {
		this.plpid = plpid;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@Cascade(CascadeType.PERSIST)
	public SysUser getSysUser() {
		return sysUser;
	}

	public void setSysUser(SysUser sysUser) {
		this.sysUser = sysUser;
	}

	public Integer getNextTime() {
		return nextTime;
	}

	public void setNextTime(Integer nextTime) {
		this.nextTime = nextTime;
	}

	public Long getpStartTime() {
		return pStartTime;
	}

	public void setpStartTime(Long pStartTime) {
		this.pStartTime = pStartTime;
	}

	public Long getPendTime() {
		return pendTime;
	}

	public void setPendTime(Long pendTime) {
		this.pendTime = pendTime;
	}

	public String getpStartShowTime() {
		return pStartShowTime;
	}

	public void setpStartShowTime(String pStartShowTime) {
		this.pStartShowTime = pStartShowTime;
	}

	public String getPendTimeShow() {
		return pendTimeShow;
	}

	public void setPendTimeShow(String pendTimeShow) {
		this.pendTimeShow = pendTimeShow;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getContent() {
		return content;
	}

	public void setContent(String content) {
		this.content = content;
	}

	public Long getLearntime() {
		return learntime;
	}

	public void setLearntime(Long learntime) {
		this.learntime = learntime;
	}

	public String getJiaoju() {
		return jiaoju;
	}

	public void setJiaoju(String jiaoju) {
		this.jiaoju = jiaoju;
	}

	public String getpName() {
		return pName;
	}

	public void setpName(String pName) {
		this.pName = pName;
	}

	public String getPltype() {
		return pltype;
	}

	public void setPltype(String pltype) {
		this.pltype = pltype;
	}

	public String getId1() {
		return id1;
	}

	public void setId1(String id1) {
		this.id1 = id1;
	}

	public String getId2() {
		return id2;
	}

	public void setId2(String id2) {
		this.id2 = id2;
	}

	public String getId3() {
		return id3;
	}

	public void setId3(String id3) {
		this.id3 = id3;
	}

	public String getId4() {
		return id4;
	}

	public void setId4(String id4) {
		this.id4 = id4;
	}

	public String getId5() {
		return id5;
	}

	public void setId5(String id5) {
		this.id5 = id5;
	}

	public String getKeshi() {
		return keshi;
	}

	public void setKeshi(String keshi) {
		this.keshi = keshi;
	}

	public String getAdress() {
		return adress;
	}

	public void setAdress(String adress) {
		this.adress = adress;
	}
    
	public String getIsCheck() {
		return isCheck;
	}

	public void setIsCheck(String isCheck) {
		this.isCheck = isCheck;
	}

	public String getLtype() {
		return ltype;
	}

	public void setLtype(String ltype) {
		this.ltype = ltype;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@Cascade(CascadeType.PERSIST)
	public Sys_TestPaper getSys_TestPaper() {
		return sys_TestPaper;
	}

	public void setSys_TestPaper(Sys_TestPaper sys_TestPaper) {
		this.sys_TestPaper = sys_TestPaper;
	}

	public Sys_LearnPlant(String share,String table_id, String name, String content, String adress, Long learntime, String keshi, String jiaoju, Integer nextTime, String pltype, String ltype, Long pStartTime, Long pendTime, String pStartShowTime, String pendTimeShow, String lpid, String plpid, String pName, String id1, String id2, String id3, String id4, String id5,String juanId,String juanName,String showTime,String userName) {
		super(table_id);
		this.name = name;
		this.share=share;
		this.content = content;
		this.adress = adress;
		this.learntime = learntime;
		this.keshi = keshi;
		this.jiaoju = jiaoju;
		this.nextTime = nextTime;
		this.pltype = pltype;
		this.ltype = ltype;
		this.pStartTime = pStartTime;
		this.pendTime = pendTime;
		this.pStartShowTime = pStartShowTime;
		this.pendTimeShow = pendTimeShow;
		this.lpid = lpid;
		this.plpid = plpid;
		this.pName = pName;
		this.id1 = id1;
		this.id2 = id2;
		this.id3 = id3;
		this.id4 = id4;
		this.id5 = id5;
		super.setString1(juanId);
		super.setString2(juanName);
		super.setString3(userName);
		super.setShowTime(showTime);
	}
   
	public String getFujian() {
		return fujian;
	}

	public void setFujian(String fujian) {
		this.fujian = fujian;
	}

	public String getFujianType() {
		return fujianType;
	}

	public void setFujianType(String fujianType) {
		this.fujianType = fujianType;
	}

	public String getShare() {
		return share;
	}

	public void setShare(String share) {
		this.share = share;
	}

	public Sys_LearnPlant() {
		
		
		
	}
   
	
	
}
